home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 21 / AACD 21.iso / AACD / Games / JST / sources / src / loaders / GreatCourts / GreatCourtsHD.asm < prev    next >
Encoding:
Assembly Source File  |  2001-03-19  |  1.4 KB  |  93 lines

  1. ; *** Great Courts HD loader v1.0
  2. ; *** Written by Jean-François Fabre
  3.  
  4.     include  "jst.i"
  5.  
  6.     HD_PARAMS   "greatcourts.d",904800,1
  7.  
  8. loader:
  9.     Mac_printf  "Great Courts HD Loader & fix v0.9"
  10.     Mac_printf  "Coded by Jean-François Fabre © 2000"
  11.  
  12.     JSRABS    LoadDisks
  13.  
  14.     moveq.l    #0,D0
  15.     move.l    #CACRF_CopyBack,D1
  16.     JSRABS    Degrade
  17.  
  18.     GO_SUPERVISOR
  19.     SAVE_OSDATA    $80000
  20.  
  21.     JSRGEN    FreezeAll
  22.  
  23.     bsr    InstallBoot
  24.  
  25.     ; **** boot stuff and patch
  26.  
  27.     JSRGEN    FlushCachesHard
  28.  
  29.     jmp    $652E.W        ; skip vector overwrite & random value read ??
  30.  
  31. InstallBoot:
  32.     lea    $6520,A0
  33.     moveq.l    #1,D0
  34.     move.l    #$D24A,D1
  35.     bsr    ReadDisk
  36.  
  37.     ; disk read routine
  38.  
  39.     PATCHUSRJMP    $134FE,ReadDisk
  40. ;    move.w    #$4BCE,$ADDC
  41.  
  42.     ; keyboard interrupt (quit key & fix)
  43.  
  44.     PATCHUSRJSR    $B6D4,KbInt
  45.     PATCHUSRJMP    $B700,EndKbInt
  46.     move.w    #$600E,$B6B6
  47.     PATCH_RTS    $B742
  48.     move.w    #$C018,$9EC0
  49.     move.w    #$C018,$9DFC
  50.  
  51.     ; patch keyword protection
  52.  
  53.     move.w    #$42B9,$7F60.W
  54.     move.w    #$601A,$7F44.W
  55.  
  56.     rts
  57.  
  58. EndKbInt:
  59.     move.w    #$8,$DFF09C
  60.     RTE
  61.  
  62. KbInt:
  63.     move.b    D0,$B710
  64.     cmp.b    #$5F,D0
  65.     bne.b    .noquit
  66.     JSRGEN    InGameExit
  67. .noquit
  68.     bset    #6,$BFEE01
  69.     BEAM_DELAY    3
  70.     bclr    #6,$BFEE01
  71.     rts
  72. ; < A0: out buffer
  73. ; < D0: start track
  74. ; < D1: length to read in bytes
  75.  
  76. ReadDisk:
  77.     STORE_REGS    D1-A6
  78.     cmp.w    #$50,D0
  79.     bcs.b    .side1
  80.     subq.l    #2,D0
  81.     subq.l    #7,D0
  82. .side1
  83.     subq.l    #1,D0
  84.     move.l    D0,D2
  85.     mulu    #$1790,D2
  86.     moveq.l    #0,D0
  87.     JSRGEN    ReadDiskPart
  88.  
  89.     JSRGEN    FlushCachesHard    
  90.     RESTORE_REGS    D1-A6
  91.     moveq.l    #0,D0
  92.     rts
  93.